安卓的安全机制包括哪些方面
安卓的安全机制包括以下这些方面:
进程沙箱隔离机制:安卓将Linux系统的用户隔离机制移植为应用程序隔离,应用程序在安装时被赋予独特的UID,并永久保持;应用程序及其运行的Dalvik虚拟机运行于独立的Linux进程空间,与UID不同的应用程序完全隔离。
应用程序签名机制:规定APK文件必须被开发者数字签名,以便标识应用程序作者和应用程序之间的信任关系。在安装应用程序APK时,系统安装程序首先检查APK是否被签名,有签名才能安装。当应用程序升级时,需要检查新版应用的数字签名与已安装的应用程序的签名是否相同,否则,会被当作一个新的应用程序。安卓开发者有可能把安装包命名为相同的名字,通过不同的签名可以把它们区分开来,也保证签名不同的包不被替换,同时防止恶意软件替换安装的应用。
权限声明机制:安卓程序默认无法访问系统和资源,应用程序需要显式声明权限、名称、权限组与保护级别。不同的级别要求应用程序行使此权限时的认证方式不同,普通级别申请即可用、危险级别需在安装时由用户确认才可用、签名级别必须是系统用户才可用。
访问控制机制:安卓直接继承了Linux的访问控制机制,传统的Linux访问控制机制确保系统文件与用户数据不受非法访问。
进程通信机制:Binder进程通信机制提供基于共享内存的高效进程通信,Binder基于客户-服务器模式,提供类似COM与CORBA的轻量级远程进程调用(RPC)。通过接口描述语言(AIDL)定义接口与交换数据的类型,确保进程间通信的数据不会溢出越界,污染进程空间。
内存管理机制:安卓内存管理机制基于标准Linux的低内存管理机制,设计实现了独特的低内存清理(LMK)机制,将进程按重要性分级、分组,当内存不足时,自动清理最低级别进程所占用的内存空间;同时,引入不同于传统Linux共享内存机制的、安卓独有的共享内存机制—Ashmem,具备清理不再使用共享内存区域的能力。